import request from '@/utils/request';
import qs from 'qs';
import type { ResponseData } from '../typing';
// 参数接口
export interface UpdateAppParams {
    // 类型，0：安卓、1：IOS */
    type?: number;
    // 更新内容 */
    content?: string;
    // 旧文件名 */
    oldName?: string;
    // 新文件名 */
    newName?: string;
    // 文件路径 */
    viewAddress?: string;
    // 版本号 */
    version?: string;
    // 主键 */
    id: number;
}
/**
 * 更新app版本管理
 * @param {object} params 管理后台 - app版本管理更新 Request VO
 * @param {number} params.type 类型，0：安卓、1：IOS
 * @param {string} params.content 更新内容
 * @param {string} params.oldName 旧文件名
 * @param {string} params.newName 新文件名
 * @param {string} params.viewAddress 文件路径
 * @param {string} params.version 版本号
 * @param {number} params.id 主键
 * @returns
 */
export function updateApp(params: UpdateAppParams): Promise<ResponseData<boolean>> {
    return request.put(`/system/app/update`, params);
}
// 参数接口
export interface CreateAppParams {
    // 类型，0：安卓、1：IOS */
    type?: number;
    // 更新内容 */
    content?: string;
    // 旧文件名 */
    oldName?: string;
    // 新文件名 */
    newName?: string;
    // 文件路径 */
    viewAddress?: string;
    // 版本号 */
    version?: string;
}
/**
 * 创建app版本管理
 * @param {object} params 管理后台 - app版本管理创建 Request VO
 * @param {number} params.type 类型，0：安卓、1：IOS
 * @param {string} params.content 更新内容
 * @param {string} params.oldName 旧文件名
 * @param {string} params.newName 新文件名
 * @param {string} params.viewAddress 文件路径
 * @param {string} params.version 版本号
 * @returns
 */
export function createApp(params: CreateAppParams): Promise<ResponseData<boolean>> {
    return request.post(`/system/app/create`, params);
}
// 参数接口
export interface GetAppPageParams {
    // 当前第几页(默认1) */
    current?: number;
    // 每页条数(默认20) */
    size?: number;
    // 类型，0：安卓、1：IOS */
    type?: number;
    // 更新内容 */
    content?: string;
    // 版本号 */
    version?: string;
    // 开始时间 */
    createTimeStart?: Record<string, unknown>;
    // 结束时间 */
    createTimeEnd?: Record<string, unknown>;
}
// 响应接口
export interface GetAppPageRes {
    code: number;
    data: {
        size: number;
        total: number;
        current: number;
        records: {
            // 主键 */
            id: number;
            // 类型，0：安卓、1：IOS */
            type: number;
            // 更新内容 */
            content: string;
            // 旧文件名 */
            oldName: string;
            // 新文件名 */
            newName: string;
            // 文件路径 */
            viewAddress: string;
            // 版本号 */
            version: string;
            createTime: Record<string, unknown>;
        }[];
        pages: number;
    };
    msg: string;
}
/**
 * 获得app版本管理分页
 * @param {object} params 管理后台 - app版本管理分页 Request VO
 * @param {number} params.current 当前第几页(默认1)
 * @param {number} params.size 每页条数(默认20)
 * @param {number} params.type 类型，0：安卓、1：IOS
 * @param {string} params.content 更新内容
 * @param {string} params.version 版本号
 * @param {object} params.createTimeStart 开始时间
 * @param {object} params.createTimeEnd 结束时间
 * @param {object} params.page
 * @returns
 */
export function getAppPage(params: GetAppPageParams): Promise<GetAppPageRes> {
    return request.post(`/system/app/page`, params);
}
// 响应接口
export interface GetVersionRes {
    code: number;
    data: {
        // 类型，0：安卓、1：IOS */
        type: number;
        // 更新内容 */
        content: string;
        // 旧文件名 */
        oldName: string;
        // 新文件名 */
        newName: string;
        // 文件路径 */
        viewAddress: string;
        // 版本号 */
        version: string;
    };
    msg: string;
}
/**
 * 获取app最新版本号，0：安卓、1：IOS
 * @param {string} type
 * @returns
 */
export function getVersion(type: number): Promise<GetVersionRes> {
    return request.get(`/system/app/getVersion/${type}`);
}
// 响应接口
export interface GetAppRes {
    code: number;
    data: {
        createTime: Record<string, unknown>;
        updateTime: Record<string, unknown>;
        creator: number;
        updater: number;
        // 主键 */
        id: number;
        // 类型，0：安卓、1：IOS */
        type: number;
        // 更新内容 */
        content: string;
        // 旧文件名 */
        oldName: string;
        // 新文件名 */
        newName: string;
        // 文件路径 */
        viewAddress: string;
        // 版本号 */
        version: string;
    };
    msg: string;
}
/**
 * 获得app版本管理
 * @param {string} id
 * @returns
 */
export function getApp(id: number): Promise<GetAppRes> {
    return request.get(`/system/app/get/${id}`);
}
/**
 * 导出app版本管理 Excel
 * @param {string} exportReqVO 管理后台 - app版本管理分页 Request VO
 * @returns
 */
export function exportAppExcel(exportReqVO: GetAppPageParams): Promise<Blob> {
    return request.get(`/system/app/export-excel?${qs.stringify(exportReqVO)}`, {
        responseType: 'blob',
    });
}
/**
 * 删除app版本管理
 * @param {string} id
 * @returns
 */
export function deleteApp(id: number): Promise<ResponseData<boolean>> {
    return request.delete(`/system/app/delete/${id}`);
}

export function getSmslogin() {
    return request.get(`/system/smslogin`);
}

export function smsloginStatus(status) {
    return request.put(`/system/smslogin/${status}`);
}
